package com.uit3j.cloud.auth.application;

public class CounterSynchronized {
    private int count = 0;

    // 同步方法，使用 synchronized 修饰
    public synchronized void increment() {
        count++;
    }

    // 同步方法，使用 synchronized 修饰
    public synchronized void decrement() {
        count--;
    }

    // 非同步方法
    public int getCount() {
        return count;
    }


    public void mainMethod(){
        CounterSynchronized counter = new CounterSynchronized();
        // 创建并启动增加计数器值的线程
        Thread incrementThread = new Thread(() -> {
            for (int i = 0; i < 1000; i++) {
                counter.increment();
            }
        });

        // 创建并启动减少计数器值的线程
        Thread decrementThread = new Thread(() -> {
            for (int i = 0; i < 1000; i++) {
                counter.decrement();
            }
        });

        // 启动线程
        incrementThread.start();
//        decrementThread.start();

        // 等待两个线程执行完毕
//        try {
//            incrementThread.join();
////            decrementThread.join();
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }

        // 输出计数器的值
        System.out.println("Final count: " + counter.getCount());

    }

}
